package sv.gob.mh.dgii.model;

// Generated Dec 10, 2007 4:52:21 PM by Hibernate Tools 3.2.0.beta7

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * TbDeficiencia generated by hbm2java
 */
@Entity
@Table(name = "TB_DEFICIENCIA", schema = "CATALOGOS", uniqueConstraints = {})
public class TbDeficiencia implements java.io.Serializable {

	// Fields    

	/**
	 * 
	 */
	private static final long serialVersionUID = 2821599478543176844L;

	private String cdeficiencia;

	private CgTipDeficien cgTipDeficien;

	private TbObligacion tbObligacion;

	private String sdeficiencia;

	private String cusuario;

	private Date fhingreso;

	private Integer breqPeriodo;

	private String cartiInfraccion;

	private String cartiSancionador;

	private Integer bactiva;

	private Integer bdetermImpuesto;

	private Set<DfDeficDicta> dfDeficDictas = new HashSet<DfDeficDicta>(0);

	private Set<CgDeficDeterm> cgDeficDeterms = new HashSet<CgDeficDeterm>(0);

	// Constructors

	/** default constructor */
	public TbDeficiencia() {
	}
	public TbDeficiencia(String cdeficiencia) {
		this.cdeficiencia = cdeficiencia;
	}

	/** minimal constructor */
	public TbDeficiencia(String cdeficiencia, String sdeficiencia,
			String cusuario, Date fhingreso, Integer bactiva,
			Integer bdetermImpuesto) {
		this.cdeficiencia = cdeficiencia;
		this.sdeficiencia = sdeficiencia;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.bactiva = bactiva;
		this.bdetermImpuesto = bdetermImpuesto;
	}

	/** full constructor */
	public TbDeficiencia(String cdeficiencia, CgTipDeficien cgTipDeficien,
			TbObligacion tbObligacion, String sdeficiencia, String cusuario,
			Date fhingreso, Integer breqPeriodo, String cartiInfraccion,
			String cartiSancionador, Integer bactiva, Integer bdetermImpuesto,
			Set<DfDeficDicta> dfDeficDictas, Set<CgDeficDeterm> cgDeficDeterms) {
		this.cdeficiencia = cdeficiencia;
		this.cgTipDeficien = cgTipDeficien;
		this.tbObligacion = tbObligacion;
		this.sdeficiencia = sdeficiencia;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.breqPeriodo = breqPeriodo;
		this.cartiInfraccion = cartiInfraccion;
		this.cartiSancionador = cartiSancionador;
		this.bactiva = bactiva;
		this.bdetermImpuesto = bdetermImpuesto;
		this.dfDeficDictas = dfDeficDictas;
		this.cgDeficDeterms = cgDeficDeterms;
	}

	// Property accessors
	@Id
	@Column(name = "C_DEFICIENCIA", unique = true, nullable = false, insertable = true, updatable = true, length = 4)
	public String getCdeficiencia() {
		return this.cdeficiencia;
	}

	public void setCdeficiencia(String cdeficiencia) {
		this.cdeficiencia = cdeficiencia;
	}

	@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
	@JoinColumn(name = "C_TIPO_DEFICIENCIA", unique = false, nullable = true, insertable = true, updatable = true)
	public CgTipDeficien getCgTipDeficien() {
		return this.cgTipDeficien;
	}

	public void setCgTipDeficien(CgTipDeficien cgTipDeficien) {
		this.cgTipDeficien = cgTipDeficien;
	}

	@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
	@JoinColumn(name = "C_OBLIGACION", unique = false, nullable = true, insertable = true, updatable = true)
	public TbObligacion getTbObligacion() {
		return this.tbObligacion;
	}

	public void setTbObligacion(TbObligacion tbObligacion) {
		this.tbObligacion = tbObligacion;
	}

	@Column(name = "S_DEFICIENCIA", unique = false, nullable = false, insertable = true, updatable = true, length = 150)
	public String getSdeficiencia() {
		return this.sdeficiencia;
	}

	public void setSdeficiencia(String sdeficiencia) {
		this.sdeficiencia = sdeficiencia;
	}

	@Column(name = "C_USUARIO", unique = false, nullable = false, insertable = true, updatable = true, length = 30)
	public String getCusuario() {
		return this.cusuario;
	}

	public void setCusuario(String cusuario) {
		this.cusuario = cusuario;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO", unique = false, nullable = false, insertable = true, updatable = true, length = 7)
	public Date getFhingreso() {
		return this.fhingreso;
	}

	public void setFhingreso(Date fhingreso) {
		this.fhingreso = fhingreso;
	}

	@Column(name = "B_REQ_PERIODO", unique = false, nullable = true, insertable = true, updatable = true, precision = 1, scale = 0)
	public Integer getBreqPeriodo() {
		return this.breqPeriodo;
	}

	public void setBreqPeriodo(Integer breqPeriodo) {
		this.breqPeriodo = breqPeriodo;
	}

	@Column(name = "C_ARTI_INFRACCION", unique = false, nullable = true, insertable = true, updatable = true, length = 80)
	public String getCartiInfraccion() {
		return this.cartiInfraccion;
	}

	public void setCartiInfraccion(String cartiInfraccion) {
		this.cartiInfraccion = cartiInfraccion;
	}

	@Column(name = "C_ARTI_SANCIONADOR", unique = false, nullable = true, insertable = true, updatable = true, length = 80)
	public String getCartiSancionador() {
		return this.cartiSancionador;
	}

	public void setCartiSancionador(String cartiSancionador) {
		this.cartiSancionador = cartiSancionador;
	}

	@Column(name = "B_ACTIVA", unique = false, nullable = false, insertable = true, updatable = true, precision = 1, scale = 0)
	public Integer getBactiva() {
		return this.bactiva;
	}

	public void setBactiva(Integer bactiva) {
		this.bactiva = bactiva;
	}

	@Column(name = "B_DETERM_IMPUESTO", unique = false, nullable = false, insertable = true, updatable = true, precision = 1, scale = 0)
	public Integer getBdetermImpuesto() {
		return this.bdetermImpuesto;
	}

	public void setBdetermImpuesto(Integer bdetermImpuesto) {
		this.bdetermImpuesto = bdetermImpuesto;
	}

	@OneToMany( fetch = FetchType.LAZY, mappedBy = "tbDeficiencia")
	public Set<DfDeficDicta> getDfDeficDictas() {
		return this.dfDeficDictas;
	}

	public void setDfDeficDictas(Set<DfDeficDicta> dfDeficDictas) {
		this.dfDeficDictas = dfDeficDictas;
	}

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "tbDeficiencia")
	public Set<CgDeficDeterm> getCgDeficDeterms() {
		return this.cgDeficDeterms;
	}

	public void setCgDeficDeterms(Set<CgDeficDeterm> cgDeficDeterms) {
		this.cgDeficDeterms = cgDeficDeterms;
	}

}
